/*
 * mic_det_api.h
 *
 * The APIs will be exported to others.
 *
 * Copyright (C) 2024 Sinh Micro, Inc.
 * Subject to the GNU Public License, version 1.00
 *
 * Author: linxianqiang<linxianqiang@sinhmicro.com.cn>
 * version: v1.10
 */
#ifndef __MIC_DET_API_H__
#define __MIC_DET_API_H__

#include "types.h"
/*========================================================================

                           �须���

/*========================================================================*/
bool mic_det_init(void);
/**
 * @method mic_det_init
 * 头��姽��覨�丵��
 * �0表示�失败�头�类��丹�
 * @param void    
 *     
 *
 * @return bool
 *
 */

void mic_det_handle_10ms(void);
/**
 * @method mic_det_handle_10ms
 * 头��夽���10ms����
 *
 * @param void
 *
 * @return void
 */
 
void mic_det_handle_100ms(void);
/**
 * @method mic_det_handle_100ms
 * 头��夽���100ms����
 *
 * @param void
 *
 * @return void
 */
 
bool mic_det_pre_slp_handle();
/**
 * @method mic_det_pre_slp_handle()
 * 头����夽��覨系�迥��
 *
 * @param void
 *
 * @return bool
 * ps: �true�系绽��
 */

bool mic_det_is_trigger(void);
/**
 * @method mic_det_is_trigger
 * ���头���觶��1表示头触�0表示头没�
 *
 * @param void
 *
 * @return bool
 *
 */

bool mic_det_is_idle(void);
/**
 * @method mic_det_is_idle
 * �头���idle���1表示idle
 *
 * @param void
 *
 * @return bool
 *
 * ps: 头���idle�系���
 */


/*========================================================================

                           �该�

/*========================================================================*/
uint16_t mic_det_get_lib_version(void);
/**
 * @method mic_det_get_lib_version
 * ���
 *
 * @param void
 *
 * @return uint16_t lib_version
 *
 *
 */

bool mic_det_is_wkup(void);
/**
 * @method mic_det_is_wkup
 * ��头��模����
 *
 * @param void
 *
 * @return bool
 * 头��模���1 
 *
 */

 uint16_t mic_det_get_baseline(void);
/**
 * @method mic_det_get_baseline
 * 返回当前的基准值
 *
 * @param void
 *
 * @return uint16_t baseline
 *
 */
 
uint16_t mic_det_get_count(void);
/**
 * @method mic_det_get_count
 * 返回当前咪头的计数值
 *
 * @param void
 *
 * @return uint16_t count
 *
 */
 
uint8_t mic_det_get_valid_status(void);
/**
 * @method mic_det_get_valid_status
 * 返回当前咪头的状态
 *
 * @param void
 *
 * @return uint8_t status
 *   0,idle   1,吸气   2,吹气   3,微吸    4,微吹
 *
 */

uint8_t mic_det_get_baseline_update_cnt(void);
/**
 * @method mic_det_get_baseline_update_cnt
 * 返回当前基准更新计时值
 *
 * @param void
 *
 * @return uint8_t baseline_update_cnt
 *
 *
 */

uint16_t mic_det_get_trigger_threshold(void);
/**
 * @method mic_det_get_trigger_threshold
 * 返回咪头的触发阈值
 *
 * @param void
 *
 * @return uint8_t trigger_threshold
 *
 *
 */
 
#endif
